var contractId = getRequest().contractId;



$(function () {
    productTable();

    //产品升级合同
    getProduct(0);

    // 初始化合作开发人员列表
    cooperateTable();
    // 初始化合作开发人员列表-分公司下拉菜单
    companiesList();
    $('select').selectpicker();

    getFollowWaySelect() //关联跟进记录

    getOpportunitySelect(); //关联赢单商机

    timeData('contractDate', 'contractDate', 'customerForm');
    //会员主合同 接口
    contractList()
});

/**
 * 功能：初始化分公司列表
 * 接口：罗杰
 * */
function getProduct(i) {
    let data={}
    if($("#contractType").val()=='会员续费合同' || i==4){
        data={
            contractId,
            whetherRenew:0
        }
    }else {
        data={
            contractId
        }
    }

    $.ajax({
        url: '/upgradeContract/selectUpgradeMemberProductList',
        type: 'get',
        dataType: "JSON",
        data: data,
        success: (function (data) {
            if (data.code == "000000") {
                var dataList = data.data;
                var selectList = '';
                for (let i = 0; i < dataList.length; i++) {
                    selectList += '<option value="' + dataList[i].memberProductId + '">' + dataList[i].memberCardName + '</option>';
                }
                $('#productList').html(selectList).selectpicker('refresh');
            }
        }),
        error: (function (res) {
            $.alert({
                title: '错误提醒',
                content: '分公司列表数据请求失败'
            });
        })
    })
}

/**
 * 功能：获取url参数
 * */
function getRequest() {
    var url = location.search; // 获取url中"?"符后的字串
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
        var str = url.substr(1);
        strs = str.split("&");
        for(var i = 0; i < strs.length; i ++) {
            theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
        }
    }
    return theRequest;
}
/**
 * 列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}
/**
 * 功能：产品table初始化
 * */

function productTable() {
    $('#productTable').bootstrapTable('destroy').bootstrapTable({
        classes: 'table table-hover table-bordered table-striped ',
        url: '/upgradeContract/selectOldContractProductByContractId',     // 请求地址

        method: 'get',                                         // 请求方式
        contentType: "application/x-www-form-urlencoded",       // 请求内容类型
        dataType: "json",                                       // 数据类型
        striped: true,                                          // 是否显示行间隔色
        sortable: true,                                         // 是否启用排序
        sortOrder: "desc",                                      // 排序方式
        sortName: 'operateTime',                                   // 排序字段
        cache: false,                                           // 是否使用缓存
        showColumns: false,                                     // 显示隐藏列
        showRefresh: false,                                     // 显示刷新按钮
        showToggle: false,                                      // 切换显示样式
        showFooter: false,                                      // 显示Table脚部
        pagination: true,                                       // 是否显示分页
        showPaginationSwitch: false,                            // 是否显示分页按钮
        clickToSelect: true,                                    // 是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,                                 // 最少要显示的列数
        undefinedText: '',                                      // cell没有值时显示
        sidePagination: "server",                               // 分页方式：client客户端分页，server服务端分页
        uniqueId: 'finishOrderProductId',
        idField: 'finishOrderProductId',
        pageSize: 5,                                            // 每页的记录行数
        pageNumber: 1,                                          // 初始化加载第1页，默认第1页
        pageList: "[5, 10, 20]",                            // 可供选择的每页的行数
        queryParams: function (params) {
            params.pageSize = params.limit;
            params.pageIndex = (params.offset / params.limit) + 1;

            params.contractId = contractId

            return params;
        },//查询参数
        columns: [
            {title: '主键ID', field: 'finishOrderProductId', visible: false},
            {radio: true, width: '50'},
            // {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '52', formatter: indexFormat},
            {title: '产品编码', field: 'productCode', align: 'left', valign: 'middle'},
            {title: '产品名称', field: 'productName', align: 'left', valign: 'middle'},
            {title: '成交价格', field: 'productFinalPrice', align: 'left', valign: 'middle'},
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function (data) {

        },
        onLoadError: function (status) {
            if (status == 403) {
                $.alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                $.alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * 功能：合作开发人员列表初始化
 * */
function cooperateTable() {
    $('#cooperateTable').bootstrapTable({
        class: 'table table-bordered table-hover table-striped',
        striped: true,                  // 是否显示行间隔色
        sortable: true,                 // 是否启用排序
        pagination: false,              // 是否显示分页
        minimumCountColumns: 2,         // 最少要显示的列数
        undefinedText: '-',             // cell没有值时显示
        uniqueId: 'userId',
        toolbar: '#cooperateTableToolbar',
        columns: [
            {title: '主键', field: 'userId', visible: false},
            {title: '主键', field: 'companyId', visible: false},
            {title: '合作开发人员姓名', field: 'userName', align: 'left', valign: 'middle'},
            {title: '分成金额', field: 'allocationMount',align: 'left', valign: 'middle',
                events: {
                    'change input': function (e, value, row, index) {
                        var inputValue = $($(e.target)[0]).val().replace(/^\D*(\d*(?:\.\d{0,4})?).*$/g, '$1');
                        inputValue = Number(inputValue);
                        if (inputValue == 0) {
                            promptInfo('分配金额必须大于零，请重新输入！', function () {
                                $($(e.target)[0]).val('');
                            });
                            return;
                        }
                        $($(e.target)[0]).val(inputValue);
                        // 输入新值，先清空当前分配金额
                        row.allocationMount = '';
                        // 计算总计分配金额是否超过合同实际总金额
                        var flag = cooperateAmount(inputValue);
                        if (flag) {
                            // 未超过直接赋值
                            row.allocationMount = inputValue;
                        } else {
                            promptInfo('分配金额总和不能大于合同实际总金额，请重新输入！', function () {
                                $($(e.target)[0]).val('');
                                row.allocationMount = '';
                            });
                        }
                    }
                },
                formatter: function (value, row, index) {
                    var html = '<input type="text" class="form-control" value="' + (value || '') + '" id="allOcation-' + index + '" style="width: 200px;">';
                    return html;
                }
            },
            {title: '操作', field: 'couponDiscount', align: 'right', valign: 'middle', width: '120',
                formatter: function (value, row, index) {
                    var html = '<button type="button" class="btn btn-default btn-danger" onclick="removeRow(this, \'' + row.userId + '\')"><i class="mdi mdi-delete"></i>删除</button>';
                    return html;
                }
            },
        ],
        onPostBody: function (data) {
            // priceTotal();
            console.log(data)
        },
    });
}

/**
 * 功能：初始化分公司列表
 * 接口：罗杰
 * */
function companiesList() {
    $.ajax({
        url: '/sysCompany/selectCompanies',
        type: 'GET',
        dataType: "json",
        success: (function (data) {
            if (data.code == "000000") {
                var dataList = data.data;
                var selectOption = '';
                for (let i = 0; i < dataList.length; i++) {
                    selectOption += '<option value="' + dataList[i].companyId + '">' + dataList[i].companyName + '</option>';
                }
                $('#companiesList').selectpicker('destroy');
                $('#companiesList').html(selectOption).selectpicker({
                    size: 10
                });
            }
        }),
        error: (function (res) {
            $.alert({
                title: '错误提醒',
                content: '分公司列表数据请求失败'
            });
        })
    })
}

/**
 * 功能：根据所选分公司初始化人员列表
 * */
function getAccountList(element) {
    $('#addCooperateBtn').prop('disabled', true);

    var companyId = $(element).val();
    $.ajax({
        url: '/account/getAccountByCompanyIdExcludeLoginPerson', //补款升级：account/getAccountListByCompanyId 换成account/getAccountByCompanyIdExcludeLoginPerson
        type: 'GET',
        dataType: "json",
        data: {
            companyId
        },
        success: (function (data) {
            if (data.code == "000000") {
                var dataList = data.data;
                var selectOption = '';
                for (let i = 0; i < dataList.length; i++) {
                    selectOption += '<option value="' + dataList[i].accountId + '">' + dataList[i].userName + '</option>';
                }
                $('#accountList').selectpicker('destroy').html(selectOption).prop('disabled', false).selectpicker({
                    size: 10
                }).one('changed.bs.select', function (event, clickedIndex, isSelected, previousValue) {
                    $('#addCooperateBtn').prop('disabled', false);
                })
            }
        }),
        error: (function (res) {
            $.alert({
                title: '错误提醒',
                content: '分公司人员数据请求失败'
            });
        })
    });
}

/**
 * 功能：新增合作开发人员
 * */
function addCooperate() {
    var companyId = $('#companiesList').val();
    var userId = $('#accountList').val();
    var userName = $('#accountList option:selected').html();

    var rowData = {
        companyId,              // 分公司Id
        userId,                 // 合作开发人员Id
        userName,               // 合作开发人员姓名
        allocationMount: ''     // 分配额度
    };

    var tableData = $('#cooperateTable').bootstrapTable('getData', true);

    if (tableData.length == 0) {
        // 直接插入
        $('#cooperateTable').bootstrapTable('append', rowData);
    } else {
        var flag = true;
        for (let i = 0; i < tableData.length; i++) {
            if (tableData[i].userId == userId) {
                flag = false;
                break;
            }
        }
        if (flag) {
            // 无重复，直接插入
            $('#cooperateTable').bootstrapTable('append', rowData);
        } else {
            // 提示有重复
            promptInfo('列表中已存在该联系人，不能重复添加！');
        }
    }
}

/**
 * 功能：分配金额计算，总计不能大于合同实际总金额
 * */
function cooperateAmount(amount) {
    // 输入值
    var amount = Number(amount);
    // 合同实际总金额
    var total = Number($('#increment').val());
    // 合作开发人员列表数据
    var tableData = $('#cooperateTable').bootstrapTable('getData', true);
    var tableDataTotal = 0;
    for (let i = 0; i < tableData.length; i++) {
        tableDataTotal += Number(tableData[i].allocationMount);
    }
    console.log('输入值：' + amount, '表格内已有值：' + tableDataTotal, '输入的总值：' + (amount + tableDataTotal), '合同实际金额：' + total);
    if (tableDataTotal + amount > total) {
        return false;
    } else {
        return true;
    }
}

/**
 * 功能：删除行
 * 参数：fieldId - 删除行的目标列字段名称
 * */
function removeRow(_this, fieldId) {
    $(_this).parents('table').bootstrapTable('removeByUniqueId', fieldId);
}

/**
 * 上传图片
 * */
function uploadImg(type) {
    var $fileUpLoad = $("#examineImgBox");
    var $fileDom = $('#examinedPic');

    var fileToUpLoad = $fileUpLoad.prop('files')[0];
    // 功能：合同附件点取消按钮清空文件域内容
    if (!fileToUpLoad) {
        $fileDom.val('');
        return;
    }
    // 功能：限制上传文件大小为2M内
    if (fileToUpLoad && fileToUpLoad.size > 1 * 1024 * 1024) {
        promptInfo('附件最大为2M，请重新选择！', function () {
            $fileUpLoad.val('');
            $fileDom.val('');
        });
        return;
    }
    var formFile = new FormData();
    formFile.append("file", fileToUpLoad);
    var data = formFile;
    var imgId;
    $.ajax({
        url: '/file/uploadByOneFile',
        data: data,
        type: "POST",
        dataType: "json",
        async: false,
        cache: false,
        processData: false,
        contentType: false,
        success: function (data) {
            if (data.code == "000000") {
                $fileUpLoad.prev().val(data.data.fileId)
                imgId = data.data.fileId;
            } else {

            }
        },
        error: (function (res) {
            $.alert(res);
        })
    });
    return imgId;
}

/**
 * 功能：提示信息
 * */
function promptInfo(content, callBack) {
    $.alert({
        title: '温馨提示',
        content: content,
        scrollToPreviousElement: false,
        scrollToPreviousElementAnimate: false,
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: callBack
            }
        }
    });
}
/**
 * 支付方式修改
 * */
/*function payMethodChange() {
    var payVal=$("#paymentMethod").val()
    if(payVal==3){
        $(".amount-conceal").hide()
    }else{
        $(".amount-conceal").show()
    }

}*/

/**
* 功能：提交补款
* */
function submitPromotion() {
    // 当前产品信息
    var productData = $('#productTable').bootstrapTable('getSelections');
    // 支付方式
    var paymentMethod = $('#paymentMethod').val();
    // 补款金额
    var increment = $('#increment').val();
    // 选择升级产品
    var productList = $('#productList').val();
    // 合作开发人员
    var coDeveloperList = $('#cooperateTable').bootstrapTable('getData', true);
    // 审核附件
    var contractAnnexId = $('#examinedPic').val();
    // 备注
    var contractReviewNotes = $('#contractReviewNotes').val();
    //关联跟进记录
    var followRecordList=$('#followRecordList').val();
    //关联跟进记录
    var opportunityList=$('#opportunityList').val();
    //是否加盖公章
    var applyElectronicContract=$('input[name="applyElectronicContract"]:checked').val();

    //客户邮箱
    var customerEmail=$('#customerEmail').val();
    //合同类型
    var contractTypeVal=$('#contractTypeVal').val();
    //合同起止日期
    var contractDate=$('#contractDate').val();

    var contractStartDate='',contractEndDate='';

    var masterMembershipContract='';

    if (productData.length == 0) {
        promptInfo('请选择需要补款升级的产品！', function () {
            $('html, body').animate({
                scrollTop: 0
            }, 200);
        });
        return;
    }

    if($("#contractType").val()=='会员单次合同'){
        if (!customerEmail) {
            promptInfo('请选择客户邮箱！');
            return;
        }
        if (!contractTypeVal) {
            promptInfo('请选择合同类型！');
            return;
        }
        if(contractTypeVal==4 && !$("#contractMain").val()){
            promptInfo('请选择会员主合同！');
            return;
        }

        if (!contractDate) {
            promptInfo('请选择合同起止日期！');
            return;
        }

        //合同起止日期
        var contractPeriodValidity = $("#contractDate").val().split('至');
        // 起止时间-开始时间
        contractStartDate = $.trim(contractPeriodValidity[0]);
        // 起止时间-结束时间
        contractEndDate = $.trim(contractPeriodValidity[1]);

        masterMembershipContract=$("#contractMain").val();
    }
    if (!productList) {
        promptInfo('请选择需要升级的产品！');
        return;
    }

    if (!paymentMethod) {
        promptInfo('请选择支付方式！');
        return;
    }
    if (!increment) {
        promptInfo('请输入补款金额！');
        return;
    }
    if (isNaN(increment)) {
        promptInfo('补款金额请输入数字！');
        return;
    }

    if (!followRecordList) {
        promptInfo('请选择关联跟进记录！');
        return;
    }
    if (!opportunityList) {
        promptInfo('请选择关联赢单商机！');
        return;
    }


    // 验证合作开发人员分配金额
    for (let i = 0; i < coDeveloperList.length; i++) {
        if (coDeveloperList[i].allocationMount == '') {
            $.alert({
                title: '温馨提示',
                content: '合作开发人员分配金额不能为空，请输入！',
                scrollToPreviousElement: false,
                scrollToPreviousElementAnimate: false,
                buttons: {
                    confirm: {
                        text: '确认',
                        btnClass: 'btn-primary',
                        action: function () {
                            $('#allOcation-' + i).focus();
                            return;
                        }
                    }
                }
            });
            return;
        }
    }


    var jsonData = {
        contractId,//原合同id
        finishOrderProductId:productData[0].finishOrderProductId,// 当前产品的
        currentProductId:productData[0].productId,//当前产品id
        currentProductCode:productData[0].productCode,//当前产品编码
        currentProductName:productData[0].productName,//当前产品名称
        currentProductDealPrice:productData[0].productFinalPrice,// //当前产品成交价格
        // productData,
        paymentMethod:paymentMethod,
        replenishmentAmount:increment,//补款金额
        updateProductId: productList,//升级产品id
        updateProductName:$("#productList option:selected").text(),//升级产品名称
        coDeveloperList,//合作开发人员
        reviewAnnexAccessUrl:contractAnnexId,//审核附件
        contractReviewNotes,//合同备注
        customerEmail:customerEmail, //客户邮箱
        followRecordId:followRecordList, // 关联跟进记录
        opportunityId:opportunityList, //关联赢单商机
        applyElectronicContract:applyElectronicContract, //是否加盖公章
        //合同起始日期
        contractStartDate:contractStartDate,
        contractEndDate:contractEndDate,
        contractType:contractTypeVal,// 合同类型
        masterMembershipContract:masterMembershipContract,//会员主合同
        contractCategory:0
    }

    console.log(jsonData);

    $.ajax({
        url: '/upgradeContract/addUpgradeContract',
        type: 'POST',
        dataType: "json",
        contentType: "application/json;charset=utf-8",
        data: JSON.stringify(jsonData),
        success: (function (data) {
            if(data.code == '000000'){
                $.alert({
                    title: '提示',
                    content: '操作成功',
                    buttons: {
                        confirm: {
                            text: '确认',
                            btnClass: 'btn-primary',
                            action: function () {

                                var $thisTabs = parent.$('.mt-nav-bar .nav-tabs').find('li.active');
                                var navTab = parent.$multitabs._getNavTab($thisTabs);

                                closeTab(navTab);
                                openTab("合同列表","/front/contractManager/userContractForm");
                                refreshActivePane('/front/contractManager/userContractForm');
                                delStorageAndRemove(navTab);
                            }
                        }
                    }
                })
            } else if(data.code == 'CV0003'){
                //余额不足,合同不能保存
                $.alert(data.message);
            }else if(data.code == 'PR0001'){
                //产品已经兑换,合同不能保存
                $.alert(data.message);
            }else {
                $.alert({
                    title: '错误提醒',
                    content: '提交失败，错误代码：' + data.code
                })
            }
        }),
        error: (function (res) {
            $.alert({
                title: '系统提示',
                content: '系统出错，请稍后再试！'
            });
            console.log(res);
        })
    })
}


//关联跟进记录
function getFollowWaySelect(){
    //客户id
    var customerId = $('#customerId').val();
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/clueFollow/selectClueFollowListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {

                    html += '<option value="' + value.clueFollowId + '">' + value.followWayName + ' ' + value.followTm + '</option>';
                });
                $('#followRecordList').selectpicker('destroy').html(html).selectpicker('refresh');
            } else {
                alert("跟进记录下拉框-请求失败");
            }
        }),
        error: (function (res) {
            alert("跟进记录下拉框-请求失败");
        })
    });
}
// 刷新关联赢单商机
function getOpportunitySelect(){
    //客户id
    var customerId = $('#customerId').val();
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/opportunity/selectOpportunityListByCustomerId?customerId=' + customerId,
        success: (function (data) {
            if (data.code == "000000") {
                var html = '';
                $.each(data.data, function(n, value) {

                    html += '<option value="' + value.opportunityId + '">' + value.opportunityTitle + '</option>';
                });
                $('#opportunityList').html(html).selectpicker('refresh');
                // 展开时重新获取数据
                /*$('#opportunityList').one('show.bs.select', function () {
                    getOpportunitySelect(contract);
                });*/
            } else {
                alert("赢单商机下拉框-请求失败");
            }
        }),
        error: (function (res) {
            alert("赢单商机下拉框-请求失败");
        })
    });
}

  //change支付方式
  function changeCooperat() {

      if($("#paymentMethod option:selected").val()==3){
          $(".pay-balance").hide()
      }else{
          $(".pay-balance").show()
      }

  }
// 会员主合同 接口
function contractList(){
    $.ajax({
        type: 'GET',
        dataType: "json",
        url: '/upgradeContract/getLastThreeMonthsContractList' ,
        success: (function (data) {
            if (data.code == "000000") {

                var html = '';
                $.each(data.data, function(n, value) {

                    html += '<option value="' + value.contractId + '">' + value.contractNumber +' - '+ value.contractStartDate+' - ' + value.contractEndDate+ '</option>';
                });

                $('#contractMain').html(html).selectpicker('refresh');

            } else {

            }
        }),
        error: (function (res) {

        })
    });
}

// 合同类型 切换
function contractTypeChange() {
    if($("#contractTypeVal").val()==4){
        getProduct(4);
        $(".main-contract").show();

    }else{
        getProduct(0);
        $(".main-contract").hide()
    }
}





































